package com.itheima.controller.role;

import com.itheima.entity.PageResult;
import com.itheima.entity.QueryPageBean;
import com.itheima.entity.Result;
import com.itheima.pojo.Role;
import com.itheima.service.role.RoleService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.*;

/**
 * @author 胡桂明
 * @since 2021/11/5 16:34
 */
@RestController
@RequestMapping("role")
public class RoleController {
    /**
     * 注入service层
     */
    @Reference
    private RoleService roleService;

    /**
     * 新增
     * @param role   前端json获取数据
     */
    @PostMapping("add")
    public void save(@RequestBody Role role) {
        roleService.save(role);
    }

    /**
     * 删除
     * @param id    前端获取要删除的id
     * @return      返回结果
     */
    @DeleteMapping("delete/{id}")
    public Result delete(@PathVariable int id) {
        roleService.delete(id);
        return new Result(true,"删除成功！");
    }

    /**
     * 修改
     * @param role   前端json获取数据
     */
    @PostMapping("update")
    public void update(@RequestBody Role role) {
        roleService.update(role);
    }

    /**
     * 按ID查找-修改用
     * @param id    查询条件
     * @return      返回结果
     */
    @GetMapping("findById/{id}")
    public Result findById(@PathVariable String id) {
        Role byId = roleService.findById(id);
        return new Result(true, "", byId);
    }

    /**
     * 查询全部
     * @param queryPageBean 分页数据
     * @return  返回查询结果
     */
    @PostMapping("findPage")
    public PageResult findAll(@RequestBody QueryPageBean queryPageBean) {
        return roleService.findAll(queryPageBean);
    }
}
